﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using DevComponents.DotNetBar;
using ProjectSoapA.ServiceProvider;

namespace ProjectSoapA
{
    public partial class frmCategory : Office2007Form
    {
        public frmCategory()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            try
            {
                LoadData();
            }
            catch (Exception)
            {

                MessageBoxEx.Show("Có lỗi trong quá trình xử lý  !", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
            
        }

        private void LoadData()
        {
            ServiceProviderClient client = new ServiceProviderClient();
            dataGVList.DataSource = null;
            dataGVList.DataSource = client.GetAllCategory();
        }

        private void btnAdd_Click(object sender, EventArgs e)
        {
            txtCategory.ReadOnly = false;
            txtSort.ReadOnly = false;
            btncategory.Tag = "add";
            btncategory.Text = "Thêm Mới";
            btncategory.Visible = true;
            txtCategory.Text = "";
            txtSort.Text = "";
        }
        int id = -1;
        private void btnDelete_Click(object sender, EventArgs e)
        {
            if (dataGVList.CurrentCell.Selected | dataGVList.CurrentRow.Selected)
            {
                txtCategory.ReadOnly = true;
                txtSort.ReadOnly = true;
                btncategory.Tag = "delete";
                btncategory.Text = "Xóa";
                btncategory.Visible = false;
                id = Convert.ToInt32(dataGVList.CurrentRow.Cells["maso"].Value);
                #region Delete Category
                if (btncategory.Tag.ToString() == "delete")
                {
                    if (id > -1)
                    {
                        try
                        {
                            ServiceProviderClient client = new ServiceProviderClient();
                            if (MessageBoxEx.Show("Bạn có chăc chắn muốn xóa không", "Thông báo", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
                            {
                                client.DeleteCategory(id);
                                MessageBoxEx.Show("Xóa thể loại thành công !", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.None);
                                LoadData();
                            }



                        }
                        catch (Exception)
                        {

                            MessageBoxEx.Show("Có lỗi trong quá trình xử lý yêu cầu của bạn !", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Error);
                        }
                    }
                }
                #endregion
            }
            else
            {
                MessageBoxEx.Show("Bạn chưa chọn thể loại để xóa !", "Lỗi", MessageBoxButtons.OK, MessageBoxIcon.Warning);
            }
        }

        private void btnUpdate_Click(object sender, EventArgs e)
        {
            if (dataGVList.CurrentCell.Selected | dataGVList.CurrentRow.Selected)
            {
                txtCategory.ReadOnly = false;
                txtSort.ReadOnly = false;
                btncategory.Tag = "update";
                btncategory.Text = "Cập nhật";
                btncategory.Visible = true;
                id = Convert.ToInt32(dataGVList.CurrentRow.Cells["maso"].Value);
                txtCategory.Text = dataGVList.CurrentRow.Cells["ten"].Value.ToString();
                txtSort.Text = dataGVList.CurrentRow.Cells["thutu"].Value.ToString();
            }
            else
            {
                MessageBoxEx.Show("Bạn chưa chọn thể loại để sửa !", "Lỗi", MessageBoxButtons.OK, MessageBoxIcon.Warning);
            }
        }

        private void btncategory_Click(object sender, EventArgs e)
        {
            #region Add new category
            if (btncategory.Tag.ToString() == "add")
            {
                if (txtCategory.Text.Trim() != "" && txtSort.Text.Trim() != null)
                {
                    try
                    {
                        Category category = new Category();
                        category.ID = id;
                        category.NAME = txtCategory.Text;
                        category.SORT = int.Parse(txtSort.Text);
                        ServiceProviderClient client = new ServiceProviderClient();
                        client.AddNewCategory(category);
                        MessageBoxEx.Show("Thêm mới thành công !", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.None);
                        txtCategory.Text = "";
                        txtSort.Text = "";
                        LoadData();
                    }
                    catch (Exception)
                    {

                        MessageBoxEx.Show("Có lỗi trong quá trình xử lý yêu cầu của bạn !", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    }
                }
            }
            #endregion
            #region Update Category
            if (btncategory.Tag.ToString() == "update")
            {

                if (txtCategory.Text.Trim() != "" && txtSort.Text.Trim() != null)
                {
                    try
                    {
                        Category category = new Category();
                        category.ID = id;
                        category.NAME = txtCategory.Text;
                        category.SORT = Convert.ToInt32(txtSort.Text);
                        if (MessageBoxEx.Show("Bạn có chăc chắn muốn cập nhật không ?", "Thông báo", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
                        {
                            ServiceProviderClient client = new ServiceProviderClient();
                            client.UpdateCategory(category);
                            MessageBoxEx.Show("Cập Nhật thành công !", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.None);
                            txtCategory.Text = "";
                            txtSort.Text = "";
                            LoadData();
                        }

                    }
                    catch (Exception)
                    {

                        MessageBoxEx.Show("Có lỗi trong quá trình xử lý yêu cầu của bạn !", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    }
                }
            }
            #endregion
        }
    }
}
